#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<string>
using namespace std;

//class Date {
//
//public:
//
//	void Print()
//	{
//		printf("%d-%02d-%02d\n", _year, _month, _day);
//	}
//	int GetMonthDay(int year, int month)
//	{
//		int MonthDayArray[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
//		if ((month == 2) && ((year % 4 == 0) && (year % 100 != 0)
//			|| (year % 400 == 0)))
//		{
//			return 29;
//		}
//		return MonthDayArray[month];
//	}
//
//	Date &operator+= (int day)
//	{
//		_day += day;
//		while (_day > GetMonthDay(_year,_month))
//		{
//			_day -= GetMonthDay(_year, _month);
//			++_month;
//			if (_month == 13)
//			{
//				_year += 1;
//				_month = 1;
//			}
//		}
//		return *this;
//	}
//
//	Date(int year = 1,int month = 1,int day = 0)
//		:_year(year)
//		,_month(month)
//		,_day(day)
//	{}
//
//private:
//	int _year;
//	int _month;
//	int _day;
//
//};
//
//
//int main()
//{
//	int year = 0, Daysum = 0;
//	scanf("%d %d", &year, &Daysum);
//	Date d1(year);
//	d1 += Daysum;
//	d1.Print();
//
//}


class Date {

public:

	void Print()
	{
		printf("%d-%02d-%02d\n", _year, _month, _day);
	}
	int GetMonthDay(int year, int month)
	{
		int MonthDayArray[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
		if ((month == 2) && ((year % 4 == 0) && (year % 100 != 0)
			|| (year % 400 == 0)))
		{
			return 29;
		}
		return MonthDayArray[month];
	}

	Date &operator+= (int day)
	{
		_day += day;
		while (_day > GetMonthDay(_year,_month))
		{
			_day -= GetMonthDay(_year, _month);
			++_month;
			if (_month == 13)
			{
				_year += 1;
				_month = 1;
			}
		}
		return *this;
	}

	Date(int year = 1,int month = 1,int day = 1)
		:_year(year)
		,_month(month)
		,_day(day)
	{}

private:
	int _year;
	int _month;
	int _day;

};


int main()
{
	int line = 0;
	scanf("%d", &line);
	int year = 0, month = 0, day = 0, AddDay = 0;
	scanf("%d %d %d %d", &year, &month,&day,&AddDay);
	Date d1(year,month,day);
	d1 += AddDay;
	d1.Print();
}

